package com.wjw.java.others.enum_;

/**
 * 枚举类：是一组常量的集合,它是一种特殊的类,里面只包含一组有限的特定的对象
 * ---------------------------------------------------------------------
 * 使用enum实现枚举类：
 * 1.使用关键字enum代替class,会默认继承java.lang.Enum类
 * 2.定义的常量对象,要求写在最上面,格式为:
 *   常量名(实参列表),多个常量对象使用逗号隔开
 * 3.构造器私有化
 * 4.只提供getter方法
 * ---------------------------------------------------------------------
 * 细节：
 * 1.使用enum修饰该类后,会默认继承java.lang.Enum,该类就无法继承其他类了(单继承extends)
 * 2.枚举类和其他普通类一样,可以实现接口,格式如下；
 *   enum 类名 implements 接口1,接口2{}
 * ---------------------------------------------------------------------
 */
public class Enumeration {
    public static void main(String[] args) {
        System.out.println("------------------枚举类Season------------------");
        System.out.println(Season.SPRING);
        System.out.println(Season.SUMMER);
        System.out.println(Season.AUTUMN);
        System.out.println(Season.WINTER);
        System.out.println("------------------枚举类Gender------------------");
        Gender boy1 = Gender.BOY;
        Gender boy2 = Gender.BOY;
        System.out.println(boy1);//输出BOY,本质上调用的是父类Enum的toString()
        System.out.println(Gender.GIRL);//输出GIRL,
        /**
         * true,因为Gender.BOY ==> public static final Gender BOY = new Gender();
         * static final修饰的是常量
         */
        System.out.println(boy1 == boy2);//true
    }
}
